The Limits of Alias Analysis for Scalar Optimizations
نویسندگان
چکیده
In theory, increasing alias analysis precision should improve compiler optimizations on C programs. This paper compares alias analysis algorithms on scalar optimizations, including an analysis that assumes no aliases, to establish a very loose upper bound on optimization opportunities. We then measure optimization opportunities on thirty-six C programs. In practice, the optimizations are rarely inhibited due to the precision of the alias analyses. Previous work finds similarly that the increased precision of specific alias algorithms provide little benefit for scalar optimizations, and that simple static alias algorithms find almost all dynamically determined aliases. This paper, however, is the first to provide a static methodology that indicates that additional precision is unlikely to yield improvements for a set of optimizations. For clients with higher alias accuracy demands, this methodology can help pinpoint the need for additional accuracy.
منابع مشابه
A SUIF Interface to Alias Analysis Results
While prior work has proposed a number of algorithms for computing aliases in C programs[5][6][7], there has been relatively little evaluation of these algorithms[1]. This paper proposes an interface that gives standard dataflow analysis and visualization clients access to “may alias” and “must alias” results produced by multiple alias analysis implementations. The clients can use this abstract...
متن کاملBuilding a Bridge between Pointer Aliases and Program Dependences
In this paper we present a surprisingly simple reduction of the program dependence problem to the may-alias problem. While both problems are undecidable, providing a bridge between them has great practical importance. Program dependence information is used extensively in compiler optimizations, automatic program parallelizations, code scheduling in super-scalar machines, and in software enginee...
متن کاملBuilding a Bridge Betweenpointer Aliases and Program
In this paper we present a surprisingly simple reduction of the program dependence problem to the may-alias problem. While both problems are undecid-able, providing a reduction between them has great practical importance. Program dependence information is used extensively in compiler optimizations, automatic program parallelizations, code scheduling in super-scalar machines, and in software eng...
متن کاملA General Compiler Framework for Data Speculation Using DSCM
Getting precise alias information in a language that allows pointers, such as C, is expensive. One reason is that alias analysis should generate conservative (safe) alias information. Alias analysis assumes possible aliases when it can’t prove there are no aliases. The conservative alias information may greatly affect compiler optimizations. In this paper, we present a general framework to allo...
متن کاملThe Swift Java Compiler: Design and Implementation
We have designed and implemented an optimizing Java compiler called Swift for the Alpha architecture. Swift translates Java bytecodes to optimized Alpha code, and uses static single assignment (SSA) form for its intermediate representation (IR). The Swift IR is relatively simple, but allows for straightforward implementation of all the standard scalar optimizations. The Swift compiler also impl...
متن کامل